// 工具类
// 深拷贝方法
function isObject(value) {
	return typeof value === 'object' && value !== null
}
export  function deepClone(value) {
	if (!isObject(value)) {
		return value
	}
	const newObj = Array.isArray(value) ? [] : {}

	for (let key in value) {
		newObj[key] = isObject(value) ? deepClone(value[key]) : value[key]
	}
	return newObj
}


// 树形数据处理插件、 递归处理 每个数据的pid  是否与当前的pid相同 相同则添加到children中
// data:数据  parentId 每个数据的id

export function treeData(data, parentId=0) {
			let tree=[]
				data.forEach(item=>{
					if(item.pid==parentId){
						// 处理所有数据的 children

						let children=treeData(data,item.id)
						
						if(children.length){ //递归处理好的数据 赋值给当前数据
							item.children=children
						}
						tree.push(item)
					}
				})
			return tree
}
// 防抖函数

 export function debounce(func, wait) {
  let timeout;
  return function() {
    const context = this;
    const args = arguments;
    clearTimeout(timeout);
    timeout = setTimeout(() => {
      func.apply(context, args);
    }, wait);
  };
}
